﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OtfPG.Objects
{
    public class Options
    {
        private bool _useSpecialCharacters = true;
        public bool UseSpecialCharacters
        {
            get { return _useSpecialCharacters; }
            set { _useSpecialCharacters = value; }
        }

        private bool _reduceLength = false;
        public bool ReduceLength
        {
            get { return _reduceLength; }
            set { _reduceLength = value; }
        }

        private int? _passwordLength = null;
        public int? PasswordLength
        {
            get { return _passwordLength; }
            set { _passwordLength = value; }
        }

        private bool _displayResult = false;
        public bool DisplayResult
        {
            get { return _displayResult; }
            set { _displayResult = value; }
        }

        public Options() { }

        public Options(bool useSpecialCharacters, bool displayResult)
        {
            _useSpecialCharacters = useSpecialCharacters;
            _displayResult = displayResult;
        }

        public Options(bool useSpecialCharacters, bool displayResult, bool reduceLength)
            : this(useSpecialCharacters, displayResult)
        {
            _reduceLength = reduceLength;
        }

        public Options(bool useSpecialCharacters, bool displayResult, bool reduceLength, int? passwordLength)
            : this(useSpecialCharacters, displayResult)
        {
            _reduceLength = reduceLength;
            _passwordLength = passwordLength;
        }
    }
}
